#ifndef SQLCaseExpr_Item_HEADER_H
#define SQLCaseExpr_Item_HEADER_H


#include <list>
#include "../SQLExpr.h"
#include "../SQLExprImpl.h"
#include "../SQLObjectImpl.h"
class SQLASTVisitor;

class SQLCaseExpr_Item : virtual public SQLObjectImpl
{

private:
  // static long serialVersionUID = 1L;
  SQLExpr_ptr conditionExpr;
  SQLExpr_ptr valueExpr;

public:
  SQLCaseExpr_Item();
  virtual ~SQLCaseExpr_Item();

  SQLCaseExpr_Item(SQLExpr_ptr conditionExpr, SQLExpr_ptr valueExpr);
  SHAREDOBJECT(SQLCaseExpr_Item);

  SQLExpr_ptr getConditionExpr();

  void setConditionExpr(SQLExpr_ptr conditionExpr);

  SQLExpr_ptr getValueExpr();

  void setValueExpr(SQLExpr_ptr valueExpr);

protected:
  void accept0(SQLASTVisitor_ptr visitor);

public:
  // int hashCode();
  // BOOL_ptr equals(Object obj);
};

// typedef boost::shared_ptr<SQLCaseExpr_Item> SQLCaseExpr_Item_ptr;
#endif
